home *** CD-ROM | disk | FTP | other *** search
/ Catch That Kid Press Kit / Catch That Kid Press Kit.iso / pc / notes / cast.swf / scripts / frame_2 / DoAction_5.as < prev    next >
Encoding:
Text File  |  2003-12-16  |  26.6 KB  |  772 lines

  1. function init()
  2. {
  3.    if(!inited)
  4.    {
  5.       mainView = FPMainView(INITIAL_VIEW_MODE,KEY_ZOOM_DISTANCE,dpi,ZOOM_MIN,ZOOM_MAX,SLIDER_MIN,SLIDER_MAX,ABOUT_URL,SLIDER_SNAP_VALUES,SLIDER_SNAP_THRESHOLD,HANDHELD_BEHAVIOR,TOOLBAR_HEIGHT);
  6.    }
  7.    inited = true;
  8. }
  9. this.FPMainView = function(viewMode_s, keyZoom_i, dpi_i, minZoom_i, maxZoom_i, minSlider_i, maxSlider_i, url_s, zoomSnapValues_array, zoomSnapThreshold_i, handheld_b, toolbarHeight_i)
  10. {
  11.    trace_txt._visible = false;
  12.    this.model = new FPModel();
  13.    this.model.addListener(this);
  14.    this.model.width = documentWidth / dpi_i * 96;
  15.    this.controller = new FPController(this.model,this);
  16.    this.controller.addListener(this);
  17.    this.keyScrollDistance = keyScroll_i;
  18.    this.keyZoomDistance = keyZoom_i;
  19.    this.viewMode = viewMode_s;
  20.    this.currentScale = 100;
  21.    this.pageFitScale = 100;
  22.    this.pageWidthScale = 100;
  23.    this.dpi = dpi_i;
  24.    this.minZoom = minZoom_i;
  25.    this.maxZoom = maxZoom_i;
  26.    this.minSlider = minSlider_i;
  27.    this.maxSlider = maxSlider_i;
  28.    this.brandURL = url_s;
  29.    this.zoomSnapValues = zoomSnapValues_array;
  30.    this.zoomSnapThreshold = zoomSnapThreshold_i;
  31.    this.zoomSnapValues.unshift(this.pageFitScale,this.pageWidthScale);
  32.    this.isHandheld = handheld_b;
  33.    this.toolbarHeight = toolbarHeight_i;
  34.    if(this.isHandheld)
  35.    {
  36.       this.minZoom = 10;
  37.    }
  38.    ASBroadcaster.initialize(this);
  39.    this.documentView = new FPDocumentView(this,TOP_MARGIN,RIGHT_MARGIN,BOTTOM_MARGIN,LEFT_MARGIN,PAGE_SPACING,LOADING_OFFSET_X,LOADING_OFFSET_Y,KEY_SCROLL_DISTANCE);
  40.    this.toolbarView = new FPToolbarView(this,TOOLBAR_MARGIN,ABOUT_URL,POPUP_ENABLED,TOOLBAR_ORDER,TOOLBAR_PRIORITY,TOOLBAR_SPACING);
  41.    var i = 1;
  42.    while(i <= totalPages)
  43.    {
  44.       var width_i = _root["pageWidth" + i] != undefined ? _root["pageWidth" + i] : _root.documentWidth;
  45.       var height_i = _root["pageHeight" + i] != undefined ? _root["pageHeight" + i] : _root.documentHeight;
  46.       this.model.addPage(width_i,height_i);
  47.       i++;
  48.    }
  49.    this.onResize();
  50.    this.onResize();
  51.    this.model.setPage(1);
  52.    cover_mc._visible = false;
  53. };
  54. this.onEnterFrame = function()
  55. {
  56.    this.documentView.loadPages();
  57.    if(_currentframe == _totalframes)
  58.    {
  59.       stop();
  60.       this.broadcastMessage("onDocumentLoaded");
  61.       delete this.onEnterFrame;
  62.    }
  63. };
  64. this.onPrint = function(_mc)
  65. {
  66.    if(this.printClip_mc == undefined)
  67.    {
  68.       this.attachMovie("pageList","printClip_mc",9999);
  69.       this.printClip_mc._visible = false;
  70.    }
  71.    print(this.printClip_mc,"bframe");
  72. };
  73. this.onBrand = function(_mc)
  74. {
  75.    getURL(this.brandURL,"_blank");
  76. };
  77. this.onKeyUp = function()
  78. {
  79.    var key_i = Key.getCode();
  80.    if(key_i == 13)
  81.    {
  82.       if(Selection.getFocus().toString() == "_level0.toolbar_mc.controls_mc.currPg_mc.currPg_txt")
  83.       {
  84.          var page_i = parseInt(toolbar_mc.controls_mc.currPg_mc.currPg_txt.text);
  85.          if(!isNaN(page_i))
  86.          {
  87.             this.model.setPage(page_i);
  88.          }
  89.          else
  90.          {
  91.             toolbar_mc.controls_mc.currPg_mc.currPg_txt.text = this.model.currentPage;
  92.          }
  93.          Selection.setFocus(null);
  94.       }
  95.       else if(Selection.getFocus().toString() == "_level0.toolbar_mc.controls_mc.currZoom_mc.currZoom_txt")
  96.       {
  97.          var percent_i = parseInt(toolbar_mc.controls_mc.currZoom_mc.currZoom_txt.text);
  98.          if(!isNaN(percent_i))
  99.          {
  100.             this.controller.zoomTo(percent_i,toolbar_mc.controls_mc.currZoom_mc.currZoom_txt);
  101.          }
  102.          else
  103.          {
  104.             toolbar_mc.controls_mc.currZoom_mc.currZoom_txt.text = Math.round(this.currentScale) + "%";
  105.          }
  106.          Selection.setFocus(null);
  107.       }
  108.    }
  109. };
  110. this.onKeyDown = function()
  111. {
  112.    if(Selection.getFocus() == null)
  113.    {
  114.       var key_i = Key.getCode();
  115.       var char_s = String.fromCharCode(Key.getAscii()).toLowerCase();
  116.       if(key_i == 189 || key_i == 109)
  117.       {
  118.          this.controller.zoomTo(Math.max(this.minZoom,this.currentScale - this.keyZoomDistance),Key);
  119.       }
  120.       else if(key_i == 107 || Key.isDown(16) && Key.isDown(187))
  121.       {
  122.          this.controller.zoomTo(Math.min(this.maxZoom,this.currentScale + this.keyZoomDistance),Key);
  123.       }
  124.       else if(char_s == "p")
  125.       {
  126.          this.controller.zoomTo(this.pageFitScale,Key);
  127.       }
  128.       else if(char_s == "w")
  129.       {
  130.          this.controller.zoomTo(this.pageWidthScale,Key);
  131.       }
  132.       else
  133.       {
  134.          this.broadcastMessage("onKeyDown",key_i);
  135.       }
  136.    }
  137. };
  138. this.onPopUpWindow = function(_mc)
  139. {
  140.    if(_url.indexOf("POPUP_ENABLED") != -1)
  141.    {
  142.       var url_s = _url.substr(0,_url.indexOf("POPUP_ENABLED")).replace("\\","\\\\");
  143.    }
  144.    else
  145.    {
  146.       var url_s = _url;
  147.    }
  148.    getURL("javascript:window.open(\"" + url_s + "\", \"fpdoc\").focus()//;window.blur()","");
  149. };
  150. this.onZoom = function(percent_i, source_o)
  151. {
  152.    this.broadcastMessage("onZoom",percent_i,source_o);
  153. };
  154. this.onAddPage = function(width_i, height_i)
  155. {
  156.    this.broadcastMessage("onAddPage",width_i,height_i);
  157. };
  158. this.onResize = function()
  159. {
  160.    this.broadcastMessage("onResize");
  161. };
  162. this.onScrollY = function(scrollPos_i)
  163. {
  164.    this.broadcastMessage("onScrollY",scrollPos_i);
  165. };
  166. this.onScrollX = function(scrollPos_i)
  167. {
  168.    this.broadcastMessage("onScrollX",scrollPos_i);
  169. };
  170. this.onSetPage = function(pageNum_i)
  171. {
  172.    this.broadcastMessage("onSetPage",pageNum_i);
  173. };
  174. this.onPanOver = function()
  175. {
  176.    this.broadcastMessage("onPanOver");
  177. };
  178. this.onPanOut = function()
  179. {
  180.    this.broadcastMessage("onPanOut");
  181. };
  182. this.onPanDown = function()
  183. {
  184.    this.broadcastMessage("onPanDown");
  185. };
  186. this.onPanUp = function()
  187. {
  188.    this.broadcastMessage("onPanUp");
  189. };
  190. this.onPanMove = function()
  191. {
  192.    this.broadcastMessage("onPanMove");
  193. };
  194. FPDocumentView = function(parentView_o, topMargin_i, rightMargin_i, bottomMargin_i, leftMargin_i, pageSpacing_i, loadingOffsetX_i, loadingOffsetY_i, keyScrollDistance_i)
  195. {
  196.    this._mc = document_mc;
  197.    this._mc.view = this;
  198.    this.parentView = parentView_o;
  199.    this.controller = parentView_o.controller;
  200.    this.model = parentView_o.model;
  201.    this.maxScrollY = 0;
  202.    this.maxScrollX = 0;
  203.    this.topMargin = topMargin_i;
  204.    this.rightMargin = rightMargin_i;
  205.    this.bottomMargin = bottomMargin_i;
  206.    this.leftMargin = leftMargin_i;
  207.    this.pageSpacing = pageSpacing_i;
  208.    this.loadingOffsetX = loadingOffsetX_i;
  209.    this.loadingOffsetY = loadingOffsetY_i;
  210.    this.keyScrollDistance = keyScrollDistance_i;
  211.    this.panning = false;
  212.    this.panCursor_mc = this._mc._parent.panCursor_mc;
  213.    this._mc._y = this.parentView.toolbarHeight - 3;
  214.    this.docWidth = this.model.width;
  215.    this._mc.y_sb.setSmallScroll(this.keyScrollDistance);
  216.    this._mc.x_sb.setSmallScroll(this.keyScrollDistance);
  217.    this._mc.y_sb.setChangeHandler("scrollY",this.controller);
  218.    this._mc.x_sb.setChangeHandler("scrollX",this.controller);
  219.    this.panCursor_mc._visible = false;
  220.    this._mc.panbtn_mc.useHandCursor = false;
  221.    this._mc.panbtn_mc.hitarea_mc._visible = false;
  222.    this._mc.panbtn_mc.hitArea = this._mc.panbtn_mc.hitarea_mc;
  223.    this._mc.panbtn_mc.onRollOver = this.controller.panOver;
  224.    this._mc.panbtn_mc.onMouseDown = this.controller.panDown;
  225.    this._mc.panbtn_mc.onMouseMove = this.controller.panMove;
  226.    this._mc.panbtn_mc.onMouseUp = this.controller.panUp;
  227.    this._mc.panbtn_mc.onRollOut = this._mc.panbtn_mc.onReleaseOutside = this.controller.panOut;
  228.    parentView_o.addListener(this);
  229. };
  230. FPDocumentView.prototype.onAddPage = function(width_i, height_i)
  231. {
  232.    this._mc.pages_mc.attachMovie("blank","page" + this.model.numPages + "_mc",this.model.numPages);
  233.    var page_mc = this._mc.pages_mc["page" + this.model.numPages + "_mc"];
  234.    page_mc.attachMovie("pageBorder","pageBorder_mc",10);
  235.    page_mc.pageBorder_mc._width = width_i / this.parentView.dpi * 96;
  236.    page_mc.pageBorder_mc._height = height_i / this.parentView.dpi * 96;
  237.    page_mc.attachMovie("pageLoadingMsg","msg_mc",11);
  238.    page_mc.attachMovie("shadow_h_mc","shadow_h_mc",1);
  239.    page_mc.shadow_h_mc._y = page_mc.pageBorder_mc._height;
  240.    page_mc.shadow_h_mc._x = 3;
  241.    page_mc.shadow_h_mc._width = page_mc.pageBorder_mc._width - 6;
  242.    page_mc.attachMovie("shadow_lv_mc","shadow_lv_mc",2);
  243.    page_mc.shadow_lv_mc._y = 3;
  244.    page_mc.shadow_lv_mc._height = page_mc.pageBorder_mc._height - 6;
  245.    page_mc.attachMovie("shadow_rv_mc","shadow_rv_mc",3);
  246.    page_mc.shadow_rv_mc._x = page_mc.pageBorder_mc._width;
  247.    page_mc.shadow_rv_mc._y = 3;
  248.    page_mc.shadow_rv_mc._height = page_mc.pageBorder_mc._height - 6;
  249.    page_mc.attachMovie("shadow_lc_mc","shadow_lc_mc",4);
  250.    page_mc.shadow_lc_mc._y = page_mc.pageBorder_mc._height;
  251.    page_mc.attachMovie("shadow_rc_mc","shadow_rc_mc",5);
  252.    page_mc.shadow_rc_mc._x = page_mc.pageBorder_mc._width;
  253.    page_mc.shadow_rc_mc._y = page_mc.pageBorder_mc._height;
  254.    if(this.model.numPages > 1)
  255.    {
  256.       var lastPage_mc = this._mc.pages_mc["page" + (this.model.numPages - 1) + "_mc"];
  257.       page_mc._y = lastPage_mc._y + lastPage_mc._height + this.pageSpacing;
  258.    }
  259.    else
  260.    {
  261.       page_mc._y = 0;
  262.    }
  263. };
  264. FPDocumentView.prototype.onResize = function()
  265. {
  266.    var pages_mc = this._mc.pages_mc;
  267.    var y_sb = this._mc.y_sb;
  268.    var x_sb = this._mc.x_sb;
  269.    var bg_mc = this._mc.bg_mc;
  270.    var panbtn_mc = this._mc.panbtn_mc;
  271.    y_sb._x = Stage.width - y_sb._width;
  272.    y_sb.setSize(Stage.height - this._mc._y - x_sb._height);
  273.    x_sb._y = Stage.height - x_sb._height - this._mc._y;
  274.    x_sb.setSize(Stage.width - (!y_sb._visible ? 0 : y_sb._width));
  275.    this.parentView.pageWidthScale = (y_sb._x - this.rightMargin - this.leftMargin) / (this.docWidth / (pages_mc._xscale / 100)) * 100;
  276.    this.parentView.pageFitScale = Infinity;
  277.    var i = 1;
  278.    while(i <= this.model.numPages)
  279.    {
  280.       var pageHeightScale_i = y_sb._height / pages_mc["page" + i + "_mc"]._height * 100;
  281.       this.parentView.pageFitScale = Math.min(Math.min(pageHeightScale_i,this.parentView.pageWidthScale),this.parentView.pageFitScale);
  282.       i++;
  283.    }
  284.    if(this.parentView.viewMode == "width")
  285.    {
  286.       this.controller.zoomTo(this.parentView.pageWidthScale,Stage);
  287.    }
  288.    else if(this.parentView.viewMode == "page")
  289.    {
  290.       this.controller.zoomTo(this.parentView.pageFitScale,Stage);
  291.    }
  292.    else
  293.    {
  294.       this.controller.zoomTo(this.parentView.currentScale,Stage);
  295.    }
  296.    bg_mc._y = panbtn_mc._y = - DROPSHADOW_HEIGHT;
  297.    bg_mc._x = panbtn_mc._x = 0;
  298.    bg_mc._width = panbtn_mc._width = !y_sb._visible ? Stage.width : Stage.width - y_sb._width;
  299.    bg_mc._height = panbtn_mc._height = DROPSHADOW_HEIGHT + Stage.height - this._mc._y - (!x_sb._visible ? 0 : x_sb._height);
  300.    if(_root.trace_txt._visible)
  301.    {
  302.       _root.trace_txt._x = Stage.width - _root.trace_txt._width - 50;
  303.       _root.trace_txt._y = Stage.height - _root.trace_txt._height - 50;
  304.    }
  305. };
  306. FPDocumentView.prototype.onZoom = function(percent_i, source_o)
  307. {
  308.    var pages_mc = this._mc.pages_mc;
  309.    var y_sb = this._mc.y_sb;
  310.    var x_sb = this._mc.x_sb;
  311.    var corner_mc = this._mc.corner_mc;
  312.    var panbtn_mc = this._mc.panbtn_mc;
  313.    var bg_mc = this._mc.bg_mc;
  314.    var panbtn_mc = this._mc.panbtn_mc;
  315.    if(percent_i < this.parentView.minZoom)
  316.    {
  317.       percent_i = this.parentView.minZoom;
  318.    }
  319.    if(percent_i > this.parentView.maxZoom)
  320.    {
  321.       percent_i = this.parentView.maxZoom;
  322.    }
  323.    pages_mc._xscale = pages_mc._yscale = this.parentView.currentScale = percent_i;
  324.    this.docWidth = this.model.width * (percent_i / 100);
  325.    pages_mc._x = Math.max(this.leftMargin,y_sb._x / 2 - this.docWidth / 2);
  326.    var scrollFractionY = y_sb.getScrollPosition() / this.maxScrollY;
  327.    var scrollFractionX = x_sb.getScrollPosition() / this.maxScrollX;
  328.    if(isNaN(scrollFractionX))
  329.    {
  330.       scrollFractionX = 0.5;
  331.    }
  332.    this.maxScrollY = pages_mc._height - y_sb._height + this.topMargin + this.bottomMargin;
  333.    this.maxScrollX = this.docWidth - x_sb._width + this.rightMargin + this.leftMargin;
  334.    if(this.maxScrollX > 0)
  335.    {
  336.       x_sb._visible = true;
  337.       y_sb.setSize(Stage.height - this._mc._y - x_sb._height);
  338.       this.maxScrollY += x_sb._height;
  339.       x_sb.setScrollProperties(x_sb._width,0,this.maxScrollX);
  340.       corner_mc._x = x_sb._x + x_sb._width;
  341.       corner_mc._y = y_sb._y + y_sb._height;
  342.       bg_mc._height = panbtn_mc._height = DROPSHADOW_HEIGHT + Stage.height - this._mc._y - x_sb._height;
  343.    }
  344.    else
  345.    {
  346.       x_sb._visible = false;
  347.       this.maxScrollX = 0;
  348.       x_sb.setScrollProperties(x_sb._width,0,this.maxScrollX);
  349.       y_sb.setSize(Stage.height - this._mc._y);
  350.       bg_mc._height = panbtn_mc._height = DROPSHADOW_HEIGHT + Stage.height - this._mc._y;
  351.    }
  352.    if(this.maxScrollY > 0)
  353.    {
  354.       y_sb.setScrollProperties(y_sb._height,0,this.maxScrollY);
  355.       y_sb._visible = true;
  356.       bg_mc._width = panbtn_mc._width = Stage.width - y_sb._width;
  357.    }
  358.    else
  359.    {
  360.       y_sb._visible = false;
  361.       bg_mc._width = panbtn_mc._width = Stage.width;
  362.       this.maxScrollY = 0;
  363.    }
  364.    if(this.model.numPages == 1 && this.parentView.viewMode == "page")
  365.    {
  366.       y_sb._visible = false;
  367.       bg_mc._width = panbtn_mc._width = Stage.width;
  368.    }
  369.    x_sb.setSize(Stage.width - (!y_sb._visible ? 0 : y_sb._width));
  370.    corner_mc._visible = !(x_sb._visible && y_sb._visible) ? false : true;
  371.    y_sb.setScrollPosition(this.maxScrollY * scrollFractionY);
  372.    if(x_sb._visible)
  373.    {
  374.       x_sb.setScrollPosition(this.maxScrollX * scrollFractionX);
  375.    }
  376.    var i = 1;
  377.    while(i <= this.model.numPages)
  378.    {
  379.       var page_mc = this._mc.pages_mc["page" + i + "_mc"];
  380.       var msg_mc = page_mc.msg_mc;
  381.       if(msg_mc != undefined)
  382.       {
  383.          var pageBorder_mc = page_mc.pageBorder_mc;
  384.          var antiScale_i = 100 / this.parentView.currentScale;
  385.          msg_mc._xscale = msg_mc._yscale = antiScale_i * 100;
  386.          msg_mc._y = antiScale_i * this.loadingOffsetY;
  387.          msg_mc._x = page_mc._x + antiScale_i * this.loadingOffsetX;
  388.          msg_mc._visible = !(msg_mc._x + msg_mc._width > pageBorder_mc._width || msg_mc._y - page_mc._y + msg_mc._height > pageBorder_mc._height) ? true : false;
  389.       }
  390.       i++;
  391.    }
  392. };
  393. FPDocumentView.prototype.onScrollY = function(_sb)
  394. {
  395.    scrollPos_i = _sb.getScrollPosition();
  396.    if(isNaN(scrollPos_i) || scrollPos_i < 0)
  397.    {
  398.       scrollPos_i = 0;
  399.    }
  400.    this._mc.pages_mc._y = - scrollPos_i + this.topMargin;
  401. };
  402. FPDocumentView.prototype.onScrollX = function(_sb)
  403. {
  404.    scrollPos_i = _sb.getScrollPosition();
  405.    if(isNaN(scrollPos_i) || scrollPos_i < 0)
  406.    {
  407.       scrollPos_i = 0;
  408.    }
  409.    this._mc.pages_mc._x = - scrollPos_i + this.leftMargin;
  410. };
  411. FPDocumentView.prototype.onSetPage = function(pageNum_i)
  412. {
  413.    var scrollPos_i = document_mc.pages_mc["page" + pageNum_i + "_mc"]._y * (this.parentView.currentScale / 100);
  414.    if(scrollPos_i > this.maxScrollY)
  415.    {
  416.       scrollPos_i = this.maxScrollY;
  417.    }
  418.    document_mc.y_sb.setScrollPosition(scrollPos_i);
  419.    onPageChanged(pageNum_i);
  420. };
  421. FPDocumentView.prototype.loadPages = function()
  422. {
  423.    var i = 1;
  424.    while(i <= this.model.numPages)
  425.    {
  426.       var page_mc = this._mc.pages_mc["page" + i + "_mc"];
  427.       if(_currentframe >= i + 1 && page_mc.pageContent_mc == undefined)
  428.       {
  429.          page_mc.attachMovie("page" + i,"pageContent_mc",10);
  430.          if(page_mc.pageContent_mc != undefined)
  431.          {
  432.             page_mc.msg_mc.removeMovieClip();
  433.             page_mc.pageContent_mc._width = page_mc.pageContent_mc._width * 20 / this.parentView.dpi * 96;
  434.             page_mc.pageContent_mc._height = page_mc.pageContent_mc._height * 20 / this.parentView.dpi * 96;
  435.             gotoAndPlay(_currentframe + 1);
  436.          }
  437.       }
  438.       i++;
  439.    }
  440. };
  441. FPDocumentView.prototype.onKeyDown = function(key_i)
  442. {
  443.    if(key_i == 34)
  444.    {
  445.       var scrollY_i = this._mc.y_sb.getScrollPosition() + this._mc.y_sb._height;
  446.    }
  447.    else if(key_i == 33)
  448.    {
  449.       var scrollY_i = this._mc.y_sb.getScrollPosition() - this._mc.y_sb._height;
  450.    }
  451.    else if(key_i == 35)
  452.    {
  453.       this._mc.y_sb.setScrollPosition(this.maxScrollY);
  454.    }
  455.    else if(key_i == 36)
  456.    {
  457.       this._mc.y_sb.setScrollPosition(0);
  458.    }
  459.    else if(key_i == 40)
  460.    {
  461.       var scrollY_i = this._mc.y_sb.getScrollPosition() + this.keyScrollDistance;
  462.    }
  463.    else if(key_i == 38)
  464.    {
  465.       var scrollY_i = this._mc.y_sb.getScrollPosition() - this.keyScrollDistance;
  466.    }
  467.    else if(key_i == 37)
  468.    {
  469.       var scrollX_i = this._mc.x_sb.getScrollPosition() - this.keyScrollDistance;
  470.    }
  471.    else if(key_i == 39)
  472.    {
  473.       var scrollX_i = this._mc.x_sb.getScrollPosition() + this.keyScrollDistance;
  474.    }
  475.    if(key_i == 38 || key_i == 40 || key_i == 33 || key_i == 34)
  476.    {
  477.       if(this._mc.y_sb._visible)
  478.       {
  479.          scrollY_i = Math.max(0,Math.min(this.maxScrollY,scrollY_i));
  480.          this._mc.y_sb.setScrollPosition(scrollY_i);
  481.       }
  482.    }
  483.    else if(key_i == 37 || key_i == 39)
  484.    {
  485.       if(this._mc.x_sb._visible)
  486.       {
  487.          scrollX_i = Math.max(0,Math.min(this.maxScrollX,scrollX_i));
  488.          this._mc.x_sb.setScrollPosition(scrollX_i);
  489.       }
  490.    }
  491. };
  492. FPDocumentView.prototype.onPanOver = function()
  493. {
  494.    Mouse.hide();
  495.    this.panCursor_mc._visible = true;
  496.    this.panCursor_mc._y = _root._ymouse;
  497.    this.panCursor_mc._x = _root._xmouse;
  498. };
  499. FPDocumentView.prototype.onPanOut = function()
  500. {
  501.    Mouse.show();
  502.    this.panCursor_mc._visible = false;
  503. };
  504. FPDocumentView.prototype.onPanDown = function()
  505. {
  506.    if(this._mc.panbtn_mc.hitTest(_root._xmouse,_root._ymouse))
  507.    {
  508.       this.panning = true;
  509.       this.startPanY_i = _root._ymouse;
  510.       this.startScrollY_i = this._mc.y_sb.getScrollPosition();
  511.       if(isNaN(this.startScrollY_i))
  512.       {
  513.          this.startScrollY_i = 0;
  514.       }
  515.       this.startPanX_i = _root._xmouse;
  516.       this.startScrollX_i = this._mc.x_sb.getScrollPosition();
  517.       if(isNaN(this.startScrollX_i))
  518.       {
  519.          this.startScrollX_i = 0;
  520.       }
  521.    }
  522. };
  523. FPDocumentView.prototype.onPanUp = function()
  524. {
  525.    this.panning = false;
  526. };
  527. FPDocumentView.prototype.onPanMove = function()
  528. {
  529.    if(this.panning)
  530.    {
  531.       var distanceY_i = _root._ymouse - this.startPanY_i;
  532.       var scrollPos_i = this.startScrollY_i - distanceY_i;
  533.       if(scrollPos_i < 0)
  534.       {
  535.          scrollPos_i = 0;
  536.       }
  537.       if(scrollPos_i > this.maxScrollY)
  538.       {
  539.          scrollPos_i = this.maxScrollY;
  540.       }
  541.       this._mc.y_sb.setScrollPosition(scrollPos_i);
  542.       if(this._mc.x_sb._visible)
  543.       {
  544.          var x_sb = this._mc.x_sb;
  545.          var distanceX_i = _root._xmouse - this.startPanX_i;
  546.          var scrollPos_i = this.startScrollX_i - distanceX_i;
  547.          if(scrollPos_i < 0)
  548.          {
  549.             scrollPos_i = 0;
  550.          }
  551.          if(scrollPos_i > this.maxScrollX)
  552.          {
  553.             scrollPos_i = this.maxScrollX;
  554.          }
  555.          this._mc.x_sb.setScrollPosition(scrollPos_i);
  556.       }
  557.    }
  558.    this.panCursor_mc._y = _root._ymouse;
  559.    this.panCursor_mc._x = _root._xmouse;
  560.    updateAfterEvent();
  561. };
  562. FPDocumentView.prototype.getScrolledPage = function()
  563. {
  564.    var scrollPos_i = this._mc.y_sb.getScrollPosition();
  565.    var middleY_i = (scrollPos_i + this._mc.y_sb._height / 2) / (this.parentView.currentScale / 100);
  566.    var i = this.model.numPages;
  567.    while(i > 0)
  568.    {
  569.       if(this._mc.pages_mc["page" + i + "_mc"]._y <= middleY_i)
  570.       {
  571.          return i;
  572.       }
  573.       i--;
  574.    }
  575. };
  576. FPDocumentView.prototype.getTopPage = function()
  577. {
  578.    var scrollPos_i = this._mc.y_sb.getScrollPosition() / (this.parentView.currentScale / 100);
  579.    var i = this.model.numPages;
  580.    while(i > 0)
  581.    {
  582.       if(this._mc.pages_mc["page" + i + "_mc"]._y <= scrollPos_i)
  583.       {
  584.          return i;
  585.       }
  586.       i--;
  587.    }
  588. };
  589. FPToolbarView = function(parentView_o, margin_i, brandURL_s, popupEnabled_b, toolbarOrder_array, toolbarPriority_array, toolbarSpacing_i)
  590. {
  591.    this._mc = toolbar_mc;
  592.    this._mc.view = this;
  593.    this.controller = parentView_o.controller;
  594.    this.model = parentView_o.model;
  595.    this.parentView = parentView_o;
  596.    this.margin = margin_i;
  597.    this.brandURL = brandURL_s;
  598.    this.popupEnabled = popupEnabled_b;
  599.    this.controlOrder = toolbarOrder_array;
  600.    this.controlPriority = toolbarPriority_array;
  601.    this.controlsHidden = 0;
  602.    this.spacing = toolbarSpacing_i;
  603.    if(this.parentView.isHandheld)
  604.    {
  605.       this.popupEnabled = false;
  606.    }
  607.    if(this.popupEnabled)
  608.    {
  609.       this.margin += this._mc.popup_mc._width + this.spacing;
  610.    }
  611.    this._mc.controls_mc.print_mc.gotoAndStop("disabled");
  612.    this._mc.controls_mc.currPg_mc.currPg_txt.restrict = "0-9";
  613.    this._mc.controls_mc.currZoom_mc.currZoom_txt.restrict = "0-9%";
  614.    this._mc.controls_mc.zoom_sld.setSliderProperties(this.parentView.minSlider,this.parentView.maxSlider);
  615.    this._mc.controls_mc.zoom_sld.setSnapValues(this.parentView.zoomSnapValues);
  616.    this._mc.controls_mc.zoom_sld.setSnapThreshold(this.parentView.zoomSnapThreshold);
  617.    if(this.parentView.toolbarHeight != this._mc.toolbarBg_mc._height)
  618.    {
  619.       var toolbarScale_i = this.parentView.toolbarHeight / this._mc.toolbarBg_mc._height * 100;
  620.       this._mc.toolbarBg_mc._yscale = toolbarScale_i;
  621.       this._mc.controls_mc._yscale = this._mc.controls_mc._xscale = toolbarScale_i;
  622.       this._mc.brandClip_mc._xscale = this._mc.brandClip_mc._yscale = toolbarScale_i;
  623.    }
  624.    if(!this.popupEnabled)
  625.    {
  626.       this._mc.popup_mc._visible = false;
  627.    }
  628.    this._mc.toolbarBg_mc._yscale = 100;
  629.    this._mc.toolbarBg_mc._xscale = 100;
  630.    this.onResize();
  631.    parentView_o.addListener(this);
  632. };
  633. FPToolbarView.prototype.onAddPage = function(width_i, height_i)
  634. {
  635.    this._mc.controls_mc.numPgs_txt.text = "/" + this.model.numPages;
  636. };
  637. FPToolbarView.prototype.onResize = function()
  638. {
  639.    var controls_mc = this._mc.controls_mc;
  640.    var toolbarBg_mc = this._mc.toolbarBg_mc;
  641.    toolbarBg_mc.middle_mc._width = Stage.width;
  642.    toolbarBg_mc.right_mc._x = Stage.width - toolbarBg_mc.right_mc._width;
  643.    controls_mc._x = Stage.width - controls_mc._width - this.margin;
  644.    do
  645.    {
  646.       var removeItem_b = !(controls_mc._x < this._mc.brandClip_mc._x + this._mc.brandClip_mc._width && controls_mc[this.controlPriority[this.controlsHidden]] != undefined) ? false : true;
  647.       if(removeItem_b)
  648.       {
  649.          controls_mc[this.controlPriority[this.controlsHidden]]._visible = false;
  650.          this.controlsHidden = this.controlsHidden + 1;
  651.          this.stackItems();
  652.       }
  653.    }
  654.    while(removeItem_b == true);
  655.    
  656.    do
  657.    {
  658.       var addItem_b = !(Stage.width - controls_mc._width - this.spacing - controls_mc[this.controlPriority[this.controlsHidden - 1]]._width - this.margin > this._mc.brandClip_mc._x + this._mc.brandClip_mc._width && controls_mc[this.controlPriority[this.controlsHidden - 1]] != undefined) ? false : true;
  659.       if(addItem_b)
  660.       {
  661.          controls_mc[this.controlPriority[this.controlsHidden - 1]]._visible = true;
  662.          this.controlsHidden--;
  663.          this.stackItems();
  664.       }
  665.    }
  666.    while(addItem_b == true);
  667.    
  668.    if(!this.popupEnabled || this.parentView.isHandheld)
  669.    {
  670.       this._mc.popup_mc._visible = false;
  671.    }
  672.    else
  673.    {
  674.       this._mc.popup_mc._x = Math.round(Stage.width - this.margin + this.spacing);
  675.    }
  676.    if(this.parentView.isHandheld)
  677.    {
  678.       this._mc.controls_mc.print_mc._visible = false;
  679.       this._mc.controls_mc.dividePrint_mc._visible = false;
  680.    }
  681.    this.parentView.zoomSnapValues[0] = this.parentView.pageFitScale;
  682.    this.parentView.zoomSnapValues[1] = this.parentView.pageWidthScale;
  683.    controls_mc.zoom_sld.setSnapValues(zoomSnapValues);
  684.    if(this.model.numPages == 1)
  685.    {
  686.       controls_mc.dividePager_mc._visible = false;
  687.       controls_mc.currPg_mc._visible = false;
  688.       controls_mc.numPgs_txt._visible = false;
  689.       controls_mc.prevNext_mc._visible = false;
  690.       controls_mc.dividePager_mc._x = false;
  691.       controls_mc.currPg_mc._x = 0;
  692.       controls_mc.numPgs_txt._x = 0;
  693.       controls_mc.prevNext_mc._x = 0;
  694.    }
  695.    this.stackItems();
  696. };
  697. FPToolbarView.prototype.stackItems = function()
  698. {
  699.    var stackWidth_i = 0;
  700.    var controls_mc = this._mc.controls_mc;
  701.    var i = 0;
  702.    while(i < this.controlOrder.length)
  703.    {
  704.       if(controls_mc[this.controlOrder[i]]._visible)
  705.       {
  706.          controls_mc[this.controlOrder[i]]._x = Math.round(stackWidth_i);
  707.          if(this.controlOrder[i] == "fitPage_mc" || this.controlOrder[i] == "fitWidth_mc")
  708.          {
  709.             var width_i = Math.min(controls_mc.fitPage_mc._width,controls_mc.fitWidth_mc._width);
  710.          }
  711.          else
  712.          {
  713.             var width_i = controls_mc[this.controlOrder[i]]._width;
  714.          }
  715.          if(this.controlOrder[i] == "currPg_mc")
  716.          {
  717.             stackWidth_i += width_i + 1;
  718.          }
  719.          else
  720.          {
  721.             stackWidth_i += width_i + this.spacing;
  722.          }
  723.       }
  724.       else
  725.       {
  726.          controls_mc[this.controlOrder[i]]._x = 0;
  727.       }
  728.       i++;
  729.    }
  730.    controls_mc._x = Math.round(Stage.width - controls_mc._width - this.margin);
  731. };
  732. FPToolbarView.prototype.onZoom = function(percent_i, source_o)
  733. {
  734.    var controls_mc = this._mc.controls_mc;
  735.    if(percent_i < this.parentView.minZoom)
  736.    {
  737.       percent_i = this.parentView.minZoom;
  738.    }
  739.    if(percent_i > this.parentView.maxZoom)
  740.    {
  741.       percent_i = this.parentView.maxZoom;
  742.    }
  743.    controls_mc.currZoom_mc.currZoom_txt.text = Math.round(this.parentView.currentScale) + "%";
  744.    controls_mc.fitPage_mc.gotoAndStop(this.parentView.viewMode != "page" ? "up" : "active");
  745.    controls_mc.fitWidth_mc.gotoAndStop(this.parentView.viewMode != "width" ? "up" : "active");
  746.    controls_mc.fitPage_mc._btn.useHandCursor = false;
  747.    controls_mc.fitWidth_mc._btn.useHandCursor = false;
  748.    controls_mc.currZoom_mc.currZoom_txt.text = Math.round(percent_i) + "%";
  749.    if(!controls_mc.zoom_sld.focused)
  750.    {
  751.       controls_mc.zoom_sld.setChangeHandler(null);
  752.       controls_mc.zoom_sld.setValue(percent_i);
  753.       controls_mc.zoom_sld.setChangeHandler("zoomSelect",this.controller);
  754.    }
  755. };
  756. FPToolbarView.prototype.onScrollY = function(_sb)
  757. {
  758.    var pageNum_i = this.parentView.documentView.getScrolledPage();
  759.    this.model.currentPage = pageNum_i;
  760.    this._mc.controls_mc.currPg_mc.currPg_txt.text = pageNum_i;
  761.    this._mc.controls_mc.prevNext_mc.nextPg_mc.gotoAndStop(pageNum_i != this.model.numPages ? "up" : "disabled");
  762.    this._mc.controls_mc.prevNext_mc.prevPg_mc.gotoAndStop(pageNum_i != 1 ? "up" : "disabled");
  763.    this._mc.controls_mc.prevNext_mc.prevPg_mc._btn.useHandCursor = false;
  764.    this._mc.controls_mc.prevNext_mc.nextPg_mc._btn.useHandCursor = false;
  765. };
  766. FPToolbarView.prototype.onDocumentLoaded = function()
  767. {
  768.    this._mc.controls_mc.print_mc.gotoAndStop("up");
  769.    this._mc.controls_mc.print_mc._btn.useHandCursor = false;
  770. };
  771. init();
  772.